This disclosure relates to the fields of computer task scheduling and tasking strategies, and in particular to a distributed task system and a distributed task management method.
In computer technologies, a task is a job executed according to a preset strategy. For instance, in Windows task system, a task can be set as “automatic shutdown of the system at 12:50 AM.” At 12:50 AM, the system executes this task and completes the job of an automatic shutdown. In a computer program, a task may be a subroutine called in the program. Furthermore, in a more complex computing environment, a task may be a separate job in a great number of computing jobs either related or not related to each other.
At present, most task systems are single systems. The processing abilities of a single system are very limited. As the complexity and the precision requirement of the tasks continue to increase, the requirement on the processing ability of the task system also increases; hence single systems can no longer satisfy user demands.
In order to increase the processing abilities of task systems, distributed task system is used. Using a distributed task system, a large problem can be divided into many small problems which are distributed to many computers. For example, distributed computing is a method of computer processing in which different parts of a program are run simultaneously on two or more computers that are communicating with each other over a network.
A distributed task system usually has a task strategy unit and a group of task execution units. Under the control of the task strategy unit, each task execution unit takes up one or more of the tasks that need to be processed. In a distributed task system, it is usually required that a task be performed by only one task execution unit within a unit tasking time. This ensures that tasks are executed linearly in the distributed task system. It may be considered an erroneous operation for two task execution units to receive from the task strategy unit an authorization for executing the same task at the same time.
FIG. 1 shows a type of distributed task system in current technology. This system includes a task strategy unit 110 and N task execution units 120. The task strategy unit 110 communicates with each task execution unit 120. The task strategy unit 110 assigns task to one of the task execution units 120, and monitors and manages each task execution unit 120. Task execution unit 120 performs the task assigned from the task strategy unit 110 and reports its status to the task strategy unit 110. The task strategy unit 110 can extend the task execution units through Remote Procedure Calls (RPC) to achieve the processing abilities of a multi-server system.
However, in the present distributed task systems as shown in FIG. 1, the task execution units 120 are passively called for service and have little to none participation in the task distribution and task strategy, which are primarily done by task strategy unit 110 alone. This can be disadvantageous because when there are a large number of tasks need for execution, and especially when long-duration tasks and short-duration tasks are mixed together, the control of the task strategy unit 110 over the task execution units 120 would become weaker and the task execution units 120 may even become out of control.